package com.zretc.service;

import com.github.pagehelper.PageInfo;
import com.zretc.entity.Permission;
import com.zretc.entity.ResponseResult;
import com.zretc.entity.UserInfo;
import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.security.core.userdetails.UserDetailsService;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;
import java.util.Map;

/**
 * @author 周文涛
 * 2020年8月19日20:27:34
 * 用户业务层
 */
public interface UserInfoService extends UserDetailsService {

    // 登录判断
    UserDetails loadUserByUsername(String username);

    // 获取用户菜单
    List<Permission> getUserMenu();

    // 获取全部权限带子类
    List<Permission> getAll();

    // 获取全部权限不带子类
    List<Permission> getAllPermission();

    // 注册账号
    int register(UserInfo userInfo);

    // 多条件查询所有用户
    List<UserInfo> getAllUser(Map<String,String> condition);

    // 是否禁用用户
    ResponseResult updateEnabled(UserInfo userInfo);

    // 删除用户
    ResponseResult deleteUser(Integer userId);

    // 获取登录后的用户
    UserDetails getLoginUser();

    // 修改用户密码
    ResponseResult updatePassword(Map<String,Object> map);

    // 修改用户信息
    ResponseResult updateUserInfo(Map<String,Object> map);

    // 修改用户头像
    ResponseResult updateUserFace(MultipartFile file,Integer userId);
}
